package com.foreknow.demo6;

import com.foreknow.demo5.Manager;

/**
 * 主人类
 */
public class Master {

    public void cure(Pet pet){//pet = Dog对象
        Dog d = (Dog) pet;//如果将大类型(父类型)传递给小类型(子类型)》》引用类型的强制类型转换(向下造型)
        if (pet.getHealth() < 60){
           pet.toHospital();
        }
    }
//    public void cure(Penguin penguin){
//        if (penguin.getHealth() < 60){
//            penguin.setHealth(60);
//            System.out.println("2");
//        }
//    }

    public static void main(String[] args) {
        Master master = new Master();
        Dog dog = new Dog();//父类的引用指向子类的对象
        master.cure(dog);//如果将小类型(子类型)传递给大类型(父类型) 》》相当于引用类型的自动类类型转换(向上造型)
        Penguin penguin= new Penguin();
        master.cure(penguin);
        //Pet p = new Pet(); 抽象类是不能被new的
        //master.cure(p); 报错
    }
}
